#include <cstdio>
#include <algorithm>
#include <cstring>
using namespace std;
typedef long long ll;
const ll MOD=998244353;
const int N=100005;
ll a[N];
void init(){
    a[1]=1;
    a[2]=0;
    a[3]=1;
    for(int i=4;i<N;i++){
        a[i]=((i-2)*a[i-1]+(i-1)*a[i-2])%MOD;
        if(i%2){
            a[i]++;
        }
        else{
            a[i]--;
        }
    }
}
void dabiao(){
    int a[10];
    for(int i=4;i<=20;i++){
        int cnt=0;
        memset(a,0,sizeof(a));
        for(int j=1;j<=i;j++){
            a[j-1]=j;
        }
        do{
            bool flag=true;
            for(int j=0;j<i-1;j++){
                if(a[j]==i){
                    if(a[j+1]==1){
                        flag=false;
                        break;
                    }
                }
                else{
                    if(a[j]+1==a[j+1]){
                        flag=false;
                        break;
                    }
                }
            }
            if(a[i-1]==i){
                if(a[0]==1){
                    flag=false;
                }
            }
            else{
                if(a[0]==a[i-1]+1){
                    flag=false;
                }
            }
            if(flag){
            //     for(int j=0;j<i;j++){
            //    printf("%d",a[j]);
            // }
            // printf("\n");
                cnt++;
            }
        }while(next_permutation(a,a+i));
        printf("%d:%d\n",i,cnt/i);
    }
}
int main(void){
    //dabiao();
    init();
    int t;
    int n;
    scanf("%d",&t);
    while(t--){
        scanf("%d",&n);
        printf("%lld\n",a[n]%MOD);
    }
    return 0;
}